type token =
  | EOF
  | NUMBER of (float)
  | INTCONST of (int)
  | IDENTIFIER of (string)
  | DATATYPE of (string)
  | COMMA
  | ADD
  | SUBTRACT
  | MULTIPLY
  | DIVIDE
  | ASSIGN
  | SIZE
  | CURRINDEX
  | IF
  | ELSE
  | LEFTPARAN
  | RIGHTPARAN
  | RIGHTSQPARAN
  | LEFTSQPARAN
  | BLOCKBEGIN
  | BLOCKEND
  | LOOP
  | GREATERTHAN
  | LESSTHAN
  | EQUALITY
  | LOGICALAND
  | LOGICALOR
  | FUNCTION
  | COL_HEADING
  | ROW_HEADING
  | ROW_LIMIT
  | COL_LIMIT
  | ROW_FILTER_CONDITION
  | COL_SORT_INDEX
  | RETURN
  | STRCONST of (string)
  | SEMICOLON
  | BOGUS

val expr :
  (Lexing.lexbuf  -> token) -> Lexing.lexbuf -> unit
